﻿using System.Collections;
using System.Collections.Generic;
using NHibernate;
using CRC.NHibernate;
using CRC.Inspecciones.Dominio.Clases;
using CRC.GestionSalones.Dominio.Clases;
using System;

namespace CRC.Inspecciones.Dominio.Controlador
{
    public class Controlador_GestionZonasEInspecciones
    {
        private static String strQryZonas = "from Zona z order by z.Nombre";
        private static String strQryZonasLigeras = "select z.Id, z.Nombre from Zona z order by z.Nombre";
        private static String strQryInspectores = "from Persona p where p.Tipo.Descripcion='inspector' order by p.Nombre, p.Apellido1, p.Apellido2";

        public IList<Zona> ObtenerZonas(){
            ISession session = null;
            IList<Zona> zonas = null;

            try
            {
                session = NHibernateHelper.GetCurrentSession();

                zonas = session.CreateQuery(strQryZonas).List<Zona>();
                return zonas;
            }
            catch (HibernateException he)
            {
                session.Close();
                throw he;
            }
        }

        public IList<Object[]> ObtenerZonasLigeras()
        {
            ISession session = null;
            IList<Object[]> zonas = null;

            try
            {
                session = NHibernateHelper.GetCurrentSession();

                zonas = session.CreateQuery(strQryZonasLigeras).List<Object[]>();
                return zonas;
            }
            catch (HibernateException he)
            {
                session.Close();
                throw he;
            }
        }

        public IList<Persona> ObtenerInspectores()
        {
            ISession session = null;
            IList<Persona> infoInspectores;

            try
            {
                session = NHibernateHelper.GetCurrentSession();

                infoInspectores = session.CreateQuery(strQryInspectores).List<Persona>();
                return infoInspectores;

            }
            catch (HibernateException he)
            {
                session.Close();
                throw he;
            }
        }

    }
}
